package com.sybil.ot.dominio;

import java.io.Serializable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "SIL_PERFILES_USUARIO")
public class Perfil implements Serializable {

   private static final long serialVersionUID = 1L;
   protected PerfilPK llave;
   private Usuario usuario;

   public Perfil() {
   }

   public Perfil(PerfilPK llave, Usuario usuario) {
      this.llave = llave;
      this.usuario = usuario;
   }

   @EmbeddedId
   public PerfilPK getLlave() {
      return llave;
   }

   public void setLlave(PerfilPK llave) {
      this.llave = llave;
   }

   @JoinColumn(name = "PEUS_USPE_USUARIO", referencedColumnName = "USPE_CLAVE", nullable = false, insertable = false, updatable = false)
   @ManyToOne(optional = false)
   public Usuario getUsuario() {
      return usuario;
   }

   public void setUsuario(Usuario usuario) {
      this.usuario = usuario;
   }

   @Override
   public int hashCode() {
      int hash = 0;
      hash += (llave != null ? llave.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object object) {
      if (!(object instanceof Perfil)) {
         return false;
      }
      Perfil other = (Perfil) object;
      if ((this.llave == null && other.llave != null) || (this.llave != null && !this.llave.equals(other.llave))) {
         return false;
      }
      return true;
   }

   @Override
   public String toString() {
      return "Perfil[ llave=" + llave + " ]";
   }
}
